﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Collections.ObjectModel;
using Model;

namespace DataBase.Codirectora
{
    public class BDCodirectora
    {
        const string conexion = "Data Source=.\\sqlexpress; Initial Catalog=JCI; Integrated Security=true";
        public static void AgregarCodirectora(long mi, Model.Programa prog)
        {
            try
            {
                SqlConnection canal = new SqlConnection(conexion);
                SqlCommand comando = canal.CreateCommand();
                comando.CommandText = "Insert Into Codirectora(CI,CodigoPrograma) Values (@ci,@codprograma)";
                comando.Parameters.AddWithValue("ci", mi);
                comando.Parameters.AddWithValue("codprograma", prog.CodigoPrograma);
                canal.Open();
                comando.ExecuteNonQuery();

            }
            catch (Exception)
            {
                throw;
            }

        }
        public static void EliminarCodirectora(long mi, Model.Programa prog)
        {
            try
            {
                SqlConnection canal = new SqlConnection(conexion);
                SqlCommand comando = canal.CreateCommand();
                comando.CommandText = "Delete FROM Codirectora WHERE CodigoPrograma=@codprograma and CI=@ci";
                comando.Parameters.AddWithValue("ci", mi);
                comando.Parameters.AddWithValue("codprograma", prog.CodigoPrograma);
                canal.Open();
                comando.ExecuteNonQuery();

            }
            catch (Exception)
            {
                throw;
            }

        }
        public static Collection<Miembroo> DevolverCodirectoras(long codigoPrograma)
        {
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(conexion);
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "SELECT Miembro.CI,Nombre,ApellidoPaterno,ApellidoMaterno,Cargo FROM Codirectora JOIN Miembro ON Codirectora.CI=Miembro.CI WHERE CodigoPrograma=@cod";
                cmd.Parameters.AddWithValue("cod", codigoPrograma);
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                if (!reader.HasRows)
                {
                    return null;
                }

                Collection<Miembroo> list = new Collection<Miembroo>();

                while (reader.Read())
                {
                    Miembroo nuevo = new Miembroo();
                    nuevo.CI = Convert.ToInt64(reader["CI"]);
                    nuevo.Nombre = reader["Nombre"].ToString();
                    nuevo.ApellidoMaterno = reader["ApellidoMaterno"].ToString();
                    nuevo.ApellidoPaterno = reader["ApellidoPaterno"].ToString();
                    nuevo.Cargo = reader["Cargo"].ToString();
                    list.Add(nuevo);
                }
                return list;
            }
            catch (SqlException ex)
            {
                throw new Exception("Error al obtener programa", ex);
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
                SqlConnection.ClearAllPools();
            }
        }

    }
}
